home *** CD-ROM | disk | FTP | other *** search
/ Super CD / Super CD.iso / geomitri / rcd / contribs.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1989-06-10  |  37.2 KB  |  1,010 lines

  1. 2       ' This programme is used to design  MULTI SPANS CONTIUOUS RIBS
  2. 3       ' This programme uses Advanced Basic Language  (IBM - BASICA )
  3. 4       ' This programme is saved under the name    [ CONTRIBS ]
  4. 5       ' Prepared by   AMJAD J. SHAIR       15/1/1986 - 22/1/1986
  5. 6  WIDTH 40 :COLOR 15,1,0 :CLS :LOCATE 5
  6. 7  PRINT "  MULTI SPANS CONTINUOUS RIBS DESIGN                                                  Pepared by :                                                                   AMJAD JAMIL EL-SHA'IR "
  7. 8  LOCATE 25,5 :PRINT "PRESS SPACE BAR TO CONTINUE ";
  8. 9  Y$=INKEY$ :IF Y$<>" " THEN 9
  9. 10   '--------------------------------------------------------------- Basic Data
  10. 20  WIDTH 80 :COLOR 15,1,0
  11. 30  CLEAR
  12. 40  OPEN "DATA1" FOR INPUT AS #1
  13. 50  IF EOF(1) THEN CLOSE :GOTO 110
  14. 60  INPUT #1,PRJ$,BLD$,DSR$,FC,FY,FYS,QA
  15. 70  GOTO 50
  16. 100  '---------------------------------------------------------- Ribs Dimensions
  17. 110  WIDTH 80 :COLOR 15,1,0 :CLS :LOCATE 2
  18. 112  PRINT "          ****************************************************"
  19. 114  PRINT "          *    C O N T I N U O U S   R I B   D E S I G N     *"
  20. 116  PRINT "          ****************************************************"
  21. 118  PRINT "          *******       RIBBED SLAB SYSTEMS MENU       *******"
  22. 120  PRINT "          ****************************************************"
  23. 122  PRINT :PRINT
  24. 124  PRINT "                  [ O ] - ONE WAY RIBBED SLAB SYSTEM      "
  25. 126  PRINT
  26. 128  PRINT "                  [ T ] - TWO WAY RIBBED SLAB SYSTEM      "
  27. 130  PRINT
  28. 132  PRINT "                  [ R ] - RETURN TO RCDESIGN MAIN MENU    "
  29. 134  PRINT
  30. 136  PRINT "          ENTER THE CHOSEN SYSTEM INITIALS SHOWN IN BRACKETS :";
  31. 138  RSC$=INKEY$ :IF RSC$<>"O" AND RSC$<>"o" AND RSC$<>"T" AND RSC$<>"t" AND RSC$<>"R" AND RSC$<>"r" THEN 138
  32. 140  IF RSC$="O" OR RSC$="o" THEN PRINT " ONE WAY RIBS "
  33. 142  IF RSC$="T" OR RSC$="t" THEN PRINT " TWO WAY RIBS "
  34. 144  IF RSC$="R" OR RSC$="r" THEN PRINT " RCDESIGN MENU" :CHAIN "RCDESIGN",2500
  35. 146  PRINT
  36. 148  INPUT "          ENTER  RIB  NUMBER                                 : R ",NMB
  37. 150  PRINT
  38. 155  INPUT "          ENTER RIB TYPE NUMBER                              :  ",TNR
  39. 160  IF TNR <=0 GOTO 155
  40. 165  IF RSC$="O" OR RSC$="o" THEN ON TNR GOTO 175,195,215
  41. 170  IF RSC$="T" OR RSC$="t" THEN ON TNR GOTO 240,260,280
  42. 175  OPEN "OWRL1" FOR INPUT AS #1
  43. 180  IF EOF(1) THEN CLOSE :GOTO 310
  44. 185  INPUT #1,BR,HR,HB,TT,PW,LL,WU
  45. 190  GOTO 180
  46. 195  OPEN "OWRL2" FOR INPUT AS #1
  47. 200  IF EOF(1) THEN CLOSE :GOTO 310
  48. 205  INPUT #1,BR,HR,HB,TT,PW,LL,WU
  49. 210  GOTO 200
  50. 215  OPEN "OWRL3" FOR INPUT AS #1
  51. 220  IF EOF(1) THEN CLOSE :GOTO 310
  52. 225  INPUT #1,BR,HR,HB,TT,PW,LL,WU
  53. 230  GOTO 220
  54. 240  OPEN "TWRL1" FOR INPUT AS #1
  55. 245  IF EOF(1) THEN CLOSE :GOTO 310
  56. 250  INPUT #1,BR,HR,HB,TT,PW,LL,WU
  57. 255  GOTO 245
  58. 260  OPEN "TWRL2" FOR INPUT AS #1
  59. 265  IF EOF(1) THEN CLOSE :GOTO 310
  60. 270  INPUT #1,BR,HR,HB,TT,PW,LL,WU
  61. 275  GOTO 265
  62. 280  OPEN "TWRL3" FOR INPUT AS #1
  63. 285  IF EOF(1) THEN CLOSE :GOTO 310
  64. 290  INPUT #1,BR,HR,HB,TT,PW,LL,WU
  65. 295  GOTO 285
  66. 310  D=HR-4 :B=BR :TF=HR-HB    'Effective depth ,Width,&Flange Thickness of Rib
  67. 320  GOSUB 3000        ' To find Section Stresses and Reinforcement Limitations
  68. 400  '------------------------------------------ Enter Cantilevers Spans & Loads
  69. 410  CLS :LOCATE 2,3 :COLOR 15,5
  70. 420  PRINT "  ****             MULTI SPAN RIB DESIGN   -  RIB : R"NMB "            ****"TAB(79)""
  71. 430  PRINT
  72. 440  LOCATE ,3 :PRINT "            Concrete Crushing Strength    f'c ="FC"  kg/cm2  "TAB(79)""
  73. 450  LOCATE ,3 :PRINT "            Reinf' Steel Yield Stress     fy  ="FY" kg/cm2  "TAB(79)""
  74. 460  PRINT
  75. 470  LOCATE ,3 :PRINT "       Rib Dimensions : b (width)="BR" cm  , h (thickness)="HR" cm"TAB(79)""
  76. 480  COLOR 15,1 :PRINT
  77. 490  LL=0 :WL=0 :FL=0 :MLC=0 :RLC=0
  78. 500  LR=0 :WR=0 :FR=0 :MRC=0 :RRC=0
  79. 510  PRINT "   DO YOU HAVE A  CANTILEVER  AT THE LEFT  END SUPPORT   (Y/N) ?  ";
  80. 515  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 515
  81. 520  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 530
  82. 525  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :GOTO 750
  83. 530  PRINT
  84. 540  INPUT "   ENTER  SPAN LENGTH  OF LEFT CANTILEVER      L      (m) ", LL
  85. 550  IF LL>0 GOTO 600
  86. 560  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  87. 570  INPUT "  ****  INVALID ZERO SPAN LENGTH     RE-ENTER    L   ****  ",LL
  88. 580  COLOR ,1:PRINT
  89. 590  IF LL<=0 GOTO 670
  90. 600  INPUT "   ENTER  ULTIMATE  UNIFORM LOAD  INTENSITY    W   (ton/m) ", WL
  91. 610  IF WL>0 GOTO 700
  92. 620  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  93. 630  INPUT "  ****  INVALID ZERO UNIFORM LOAD    RE-ENTER    W   ****  ",WL
  94. 640  COLOR ,1:PRINT
  95. 650  IF WL>0 GOTO 700
  96. 660  LL=0
  97. 670  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  98. 680  PRINT "  ****   CANTILEVER AT LEFT END  WILL BE NEGLECED    ****  "
  99. 690  COLOR ,1:PRINT :GOTO 750
  100. 700  INPUT "   ENTER  PARAPET COCENTRATED LOAD  (if any)   F     (ton) ", FL
  101. 710  IF FL <= 0 GOTO 730
  102. 720  INPUT "   ENTER  DISTANCE OF COCENT. LOAD  FROM EDGE          (m) ", XFL
  103. 730  MLC=-(WL*LL^2/2+FL*(LL-XFL))
  104. 740  RLC=WL*LL+FL
  105. 750  PRINT :PRINT "   --------------------------------------------------------------------- " :PRINT
  106. 760  PRINT "   DO YOU HAVE A  CANTILEVER  AT THE RIGHT END SUPPORT   (Y/N) ?  ";
  107. 765  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 765
  108. 770  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 780
  109. 775  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :GOTO 1000
  110. 780  PRINT
  111. 790  INPUT "   ENTER  SPAN LENGTH  OF RIGHT CANTILEVER     L      (m) ", LR
  112. 800  IF LR>0 GOTO 850
  113. 810  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  114. 820  INPUT "  ****  INVALED ZERO SPAN LENGTH     RE-ENTER    L   ****  ",LR
  115. 830  COLOR ,1:PRINT
  116. 840  IF LR<=0 GOTO 920
  117. 850  INPUT "   ENTER  ULTIMATE  UNIFORM LOAD  INTENSITY    W   (ton/m) ", WR
  118. 860  IF WR>0 GOTO 950
  119. 870  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  120. 880  INPUT "  ****  INVALED ZERO UNIFORM LOAD    RE-ENTER    W   ****  ",WR
  121. 890  COLOR ,1:PRINT
  122. 900  IF WR>0 GOTO 950
  123. 910  LR=0
  124. 920  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  125. 930  PRINT "  ****   CANTILEVER AT LEFT END  WILL BE NEGLECED    ****  "
  126. 940  COLOR ,1:PRINT :GOTO 1000
  127. 950  INPUT "   ENTER  PARAPET COCENTRATED LOAD  (if any)   F     (ton) ", FR
  128. 960  IF FR <= 0 GOTO 980
  129. 970  INPUT "   ENTER  DISTANCE OF COCENT. LOAD  FROM EDGE          (m) ", XFR
  130. 980  MRC=WR*LR^2/2+FR*(LR-XFR)
  131. 990  RRC=WR*LR+FR
  132. 1000  '------------------------------------------------- Enter Rib Spans & Loads
  133. 1010  GOSUB 3400       'To display heading and data
  134. 1020  INPUT "   ENTER  NUMBER OF SPANS OF THE RIB         (1 TO 7)      ",N
  135. 1030  IF N>=1 AND N<=7 GOTO 1090
  136. 1040  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  137. 1050  INPUT "  ****  INVALID NUMBER OF SRANS      RE-ENTER    N   ****  ",N
  138. 1060  COLOR ,1:PRINT
  139. 1070  IF (N<1) OR (N>7) THEN GOSUB 3300 ELSE GOTO 1090
  140. 1080  IF Y$="Y" GOTO 1000 ELSE GOTO 2800
  141. 1090  PRINT
  142. 1100  FOR I=1 TO N
  143. 1110  L(I)=0 :W(I)=0 :RL(I)=0 :RR(I)=0 :MFL(I)=0 :MFR(I)=0 :MNL(I)=0 :MNR(I)=0 :MP(I)=0
  144. 1120  NEXT
  145. 1130  FOR I= 1 TO N
  146. 1140  PRINT "   **  SPAN"I"  **  "
  147. 1150  PRINT "   ---------------"
  148. 1160  INPUT "   ENTER  SPAN LENGTH                          L      (m) ",L(I)
  149. 1170  IF L(I)>0 GOTO 1230
  150. 1180  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  151. 1190  INPUT "  ****  INVALED ZERO SPAN LENGTH     RE-ENTER    L   ****  ",L(I)
  152. 1200  COLOR ,1:PRINT
  153. 1210  IF L(I)<=0 THEN GOSUB 3300 ELSE GOTO 1230
  154. 1220  IF Y$="Y" GOTO 1000 ELSE GOTO 2800
  155. 1230  INPUT "   ENTER  ULTIMATE  UNIFORM LOAD  INTENSITY    W   (ton/m) ",W(I)
  156. 1240  IF W(I)>0 GOTO 1300
  157. 1250  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  158. 1260  INPUT "  ****  INVALED ZERO UNIFORM LOAD    RE-ENTER    W   ****  ",W(I)
  159. 1270  COLOR ,1:PRINT
  160. 1280  IF W(I)<=0 THEN GOSUB 3300 ELSE GOTO 1300
  161. 1290  IF Y$="Y" GOTO 1000 ELSE GOTO 2800
  162. 1300  PRINT
  163. 1310  NEXT
  164. 1400  '-------------------------------------- Calculation of Moments & Reactions
  165. 1405  PRINT :PRINT :PRINT :LOCATE ,20 :COLOR 31,0
  166. 1410  PRINT "  ***   P L E A S E     W A I T    ***  "
  167. 1415  COLOR 15,1 :PRINT
  168. 1420  GOSUB 3500      'To Calculate  Negative Moments by Moment Distribution
  169. 1425  GOSUB 3900      'To Calculate Reactions, Positive Mom., and Cut off Points
  170. 1430  GOSUB 4000                    ' Round up Structural Analysis Output
  171. 1435  GOSUB 3440                    ' Display Heading & Basic Data
  172. 1440  ON N GOSUB 5000,6000,7000     ' Display Data & Srtuctural Analysis
  173. 1445  IF N>=4 THEN GOSUB 8000
  174. 1450  IF N=1 GOTO 1585
  175. 1455  COLOR 15,5
  176. 1460  INPUT "     ENTER THE PERCENTAGE (%) OF REDUCTION ON NEGATIVE MOMENT  (if required )                        Enter  Cr   for no reduction required                   ",RDC
  177. 1465  COLOR 15,1
  178. 1470  IF RDC<=0 THEN RDC=0 :GOTO 1580
  179. 1475  IF RDC<=15 GOTO 1505 ELSE RDC=0
  180. 1480  PRINT :LOCATE ,10 :COLOR ,4 :BEEP
  181. 1485  PRINT " it is not advisable to apply more than 15 % reduction for  M -ve "
  182. 1490  PRINT "                 ***     Press   SPACE BAR   to continue    ***  ";
  183. 1495  Y$=INKEY$ :IF Y$<>" " THEN 1495
  184. 1500  IF Y$=" " THEN COLOR ,1 :PRINT :GOTO 1435
  185. 1505  FOR I=1 TO N
  186. 1510  IF I=1 AND LL>0 GOTO 1520
  187. 1515  MNL(I)=MNL(I)*(1-RDC/100)
  188. 1520  IF I=N AND LR>0 GOTO 1530
  189. 1525  MNR(I)=MNR(I)*(1-RDC/100)
  190. 1530  NEXT
  191. 1535  GOSUB 3900      'To Calculate Reactions, Positive Mom., and Cut off Points
  192. 1540  GOSUB 4000                    ' Round up Structural Analysis Output
  193. 1545  GOSUB 3470                    ' Display Heading & Basic Data
  194. 1550  ON N GOSUB 5000,6000,7000     ' Display Data & Srtuctural Analysis
  195. 1555  IF N>=4 THEN GOSUB 8000
  196. 1560  PRINT "    DO YOU WANT TO CHANGE THE PERCENTAGE OF REDUCTION   (Y/N) ?  ";
  197. 1565  Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 1565
  198. 1570  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :RDC=0 :GOTO 1400
  199. 1575  IF Y$="N" OR Y$="n" THEN PRINT "  NO "
  200. 1580  PRINT :COLOR 15,1
  201. 1585  PRINT "         ***   PRESS   Space Bar   TO DISPLAY THE REINF' DETAILS   ***";
  202. 1590  Y$=INKEY$ :IF Y$<>" " THEN 1590
  203. 1600  '------------------------------------------ Calculation of Negative Reinf'
  204. 1610  FOR I= 1 TO N+1
  205. 1615  IF I>1 GOTO 1640
  206. 1620  MU=MNL(1)
  207. 1625  IF MU>MU(MAX.) GOTO 1700
  208. 1630  IF MU<(W(1)*L(1)^2/24) THEN MU=W(1)*L(1)^2/24
  209. 1635  GOTO 1660
  210. 1640  MU=-MNR(I-1)
  211. 1645  IF MU>MU(MAX.) GOTO 1700
  212. 1650  IF I=N+1 AND MU<(W(N)*L(N)^2/24) THEN MU=W(N)*L(N)^2/24
  213. 1660  GOSUB 4300          ' To find As
  214. 1670  IF AS<AS(MIN.) THEN AS=AS(MIN.)
  215. 1680  ASN(I)=AS :CBSL(I)=0 :CBSR(I)=0
  216. 1690  GOTO 1800
  217. 1700  B=BR+40
  218. 1710  GOSUB 4300
  219. 1720  IF AC<TF GOTO 1732
  220. 1730  GOSUB 4400 :GOTO 2700
  221. 1732  IF I>1 GOTO 1740
  222. 1734  IF LL<=0 THEN CBSL(1)=0 :GOTO 1760
  223. 1736  CBSL(1)=LL-(-FL+SQR(FL^2+2*WL*(MU(MAX.)+FL*XFL)))/WL :GOTO 1760
  224. 1740  IF RR(I-1)^2<(2*W(I-1)*(MU-MU(MAX.))) THEN CBSL(I)=0 :GOTO 1790
  225. 1750  CBSL(I)=(RR(I-1)-SQR(RR(I-1)^2-2*W(I-1)*(MU-MU(MAX.))))/W(I-1)                           'Min. Width of concrete Beam to be provided on the left side of                   the support to allow for full width concrete section b =br+40
  226. 1752  IF I<N+1 GOTO 1760
  227. 1754  IF LR<=0 THEN CBSR(N+1)=0 :GOTO 1780
  228. 1756  CBSR(N+1)=LR-(-FR+SQR(FR^2+2*WR*(MU(MAX.)+FR*XFR)))/WR :GOTO 1780
  229. 1760  IF RL(I)^2<(2*W(I)*(MU-MU(MAX.))) THEN CBSR(I)=0 :GOTO 1790
  230. 1770  CBSR(I)=(RL(I)-SQR(RL(I)^2-2*W(I)*(MU-MU(MAX.))))/W(I)                                  'Min. Width of concrete Beam to be provided on the right side of                  the support to allow for full width concrete section b =br+40
  231. 1780  IF CBSL(I)>=CBSR(I) THEN CBS(I)=2*CBSL(I) ELSE CBS(I)=2*CBSR(I)                  'Min. Width of concrete Beam to be provided at support half each side to          allow for full width concrete section b =br+40
  232. 1790  ASN(I)=AS :ACN(I)=AC
  233. 1800  DIAN(I)=2+2*INT(SQR(4*100*AS*0.95/(3.14159*2))/2)  'Bar diameter to be used
  234. 1810  IF DIAN(I)<10 THEN DIAN(I)=10
  235. 1812  IF DIAN(I)<24 GOTO 1820
  236. 1815  DIAN(I)=25
  237. 1820  ASPN(I)=2*3.14159*(DIAN(I)/10)^2/4        'As provided for Negative Reinf'
  238. 1830  NEXT
  239. 1900  '------------------------------------------ Calculation of Positive Reinf'
  240. 1910  FOR I= 1 TO N
  241. 1920  MU=MP(I)
  242. 1930  IF MU<(W(I)*L(I)^2/16) THEN MU=W(I)*L(I)^2/16
  243. 1940  IF MU>MU(MAX.) GOTO 1990
  244. 1950  GOSUB 4300          ' To find As
  245. 1960  ASP(I)=AS
  246. 1970  IF AS<AS(MIN.) THEN AS=AS(MIN.)
  247. 1980  GOTO 2080
  248. 1990  B=BR+40
  249. 2000  GOSUB 4300
  250. 2010  IF AC<TF GOTO 2070
  251. 2020  LOCATE ,5 :COLOR ,4 :BEEP
  252. 2030  PRINT "   ***   THIS RIB SECTION IS NOT ADEQUATE FOR THE GIVEN SPAN & LOADING    ***      ***                    CHANGE RIB SECTION DIMENTIONS                   ***   "
  253. 2040  COLOR ,1 :PRINT :GOTO 2700
  254. 2070  ASP(I)=AS :ACP(I)=AC
  255. 2080  DIAP(I)=2+2*INT(SQR(4*100*AS*0.95/(3.14159*2))/2)  'Bar diameter to be used
  256. 2090  IF DIAP(I)<10 THEN DIAP(I)=10
  257. 2092  IF DIAP(I)<24 GOTO 2100
  258. 2095  DIAP(I)=25
  259. 2100  ASPP(I)=2*3.14159*(DIAP(I)/10)^2/4          'As provided for posit. reinf'
  260. 2110  NEXT
  261. 2200  '---------------------------------------------------Display data & Results
  262. 2210  GOSUB 4200
  263. 2220  GOSUB 3400
  264. 2230  ON N GOSUB 5600,6600,7600
  265. 2240  IF N>=4 THEN GOSUB 8600
  266. 2300  '-----------------------------------------------------Print Data & Results
  267. 2305  PRINT "        ***   DO YOU WANT THIS RIB DESIGN TO BE PRINTED  (Y/N) ?  ***";
  268. 2310  Y$=INKEY$ :IF Y$="" THEN 2310
  269. 2315  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 2330
  270. 2320  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :GOTO 2700
  271. 2325  GOTO 2300
  272. 2330  H$=STRING$(79,61)
  273. 2332  LPRINT
  274. 2335  LPRINT CHR$(14)"Arabian Consulting Engineering Services"
  275. 2340  LPRINT "P. O. Box  146                                           Riyadh - Saudi Arabia"
  276. 2345  LPRINT H$
  277. 2350  LPRINT CHR$(14)" PROJECT: "PRJ$
  278. 2355  LPRINT
  279. 2360  LPRINT "  BUILDING    : "BLD$ TAB(58)"PAGE No.:"
  280. 2365  LPRINT "  DESIGNED BY : "DSR$ TAB(31)"/ CHECKED BY : "TAB(58)"DATE    : "DATE$
  281. 2370  LPRINT :LPRINT H$
  282. 2375  LPRINT "  RCDESIGN PROGRAM PREPARED BY : Amjad J.El-Sha'ir, P.O.Box 926447 Amman-Jordan"
  283. 2380  LPRINT "  THIS COPY TO BE USED ONLY BY : Arabian Consulting Engineering Services  K.S.A"
  284. 2385  LPRINT H$
  285. 2390  LPRINT CHR$(14) " MULTI SPAN RIBS "TAB(32)"RIB: R"NMB
  286. 2400  LPRINT H$ :LPRINT
  287. 2410  LPRINT CHR$(27)"G";
  288. 2420  LPRINT "  ** CONCRETE & STEEL PROPERTIES **  "
  289. 2430  LPRINT CHR$(27)"H";"  ---------------------------------  "
  290. 2440  LPRINT "   - Concrete Crushing Strength  f'c ="FC" kg/cm2  "
  291. 2450  LPRINT "   - Reinf' Steel Yield Stress   fy  ="FY" kg/cm2  "
  292. 2460  LPRINT CHR$(27)"G"
  293. 2470  LPRINT "  ** RIB SECTION DIMENSIONS **  "
  294. 2480  LPRINT CHR$(27)"H";"  ----------------------------  "
  295. 2490  LPRINT "   - Width   b  = "BR" cm" TAB(40) "   - Flange Thickness tf = "TF" cm "
  296. 2500  LPRINT "   - Height  h  = "HR" cm" TAB(40) "   - Effective Depth  d  = "D" cm "
  297. 2510  LPRINT H$
  298. 2520  LPRINT "  Max. Sect. Capacity Ku ="KU(MAX.) TAB(40) " Max. Moment Capacity Mu ="MU(MAX.)" t.m"
  299. 2530  LPRINT "  Min. Steel Ratio    Ps ="PS(MIN.) TAB(40) " Max. Steel Ratio     Ps ="PSX(MAX.)
  300. 2540  LPRINT "  Min. Steel Area     As ="AS(MIN.)" cm2" TAB(40) " Max. Steel Area      As ="ASX(MAX.)" cm2"
  301. 2550  LPRINT H$
  302. 2560  LPRINT :LPRINT
  303. 2570  ON N GOSUB 9000,10000,11000
  304. 2580  IF N>=4 THEN GOSUB 12000
  305. 2590  LPRINT CHR$(27) "H":LPRINT CHR$(12)
  306. 2700  '----------------------------------------------------Repeat for Other Ribs
  307. 2710  PRINT :PRINT "        ***   DO YOU HAVE OTHER RIBS TO DESIGN           (Y/N) ?  ***";
  308. 2720  Y$=INKEY$ :IF Y$="" THEN 2720
  309. 2730  IF Y$="Y" OR Y$="y" THEN PRINT "  YES" :GOTO 10
  310. 2740  IF Y$="N" OR Y$="n" THEN PRINT "  NO " :PRINT :PRINT "           [  YOU WILL BE SEND BACK TO THE  RCDESIGN MAIN MENU   ]  " :CHAIN "RCDESIGN",2500
  311. 2750  GOTO 2700
  312. 2800  END  '------------------------------------------------------End of Running
  313. 2900  '**********************   SUBROUTINES   **********************************
  314. 3000  '----------------------------- SUBROUTINE : Section and Reinf' Limitations
  315. 3010  PSX(MAX.)=0.75*(4400/(FY+6090))*FC/FY        '  Max. Ratio of Reinf'
  316. 3020  WC(MAX.)=PSX(MAX.)*FY/FC
  317. 3030  ASX(MAX.)=PSX(MAX.)*BR*D
  318. 3040  KU(MAX.)=0.9*FC*WC(MAX.)*(1-0.59*WC(MAX.))
  319. 3050  AC(MAX.)=WC(MAX.)*D/0.85               'Depth of comp. Whitny Block
  320. 3060  CC(MAX.)= AC(MAX.)/0.85                 'Depth of Nutral Axis
  321. 3070  JU(MAX.)=(1-0.59*WC(MAX.))*D                'Liver Arm
  322. 3080  MU(MAX.)=KU(MAX.)*BR*D^2/100000             'Max. Moment Capacity of Rib
  323. 3090  PS(MIN.)=13.99/FY
  324. 3100  AS(MIN.)=PS(MIN.)*BR*D
  325. 3110  PSX(MAX.)=(CINT(PSX(MAX.)*10000))/10000
  326. 3120  WC(MAX.)=(CINT(WC(MAX.)*100))/100
  327. 3130  ASX(MAX.)=(CINT(ASX(MAX.)*100))/100
  328. 3140  KU(MAX.)=(CINT(KU(MAX.)*100))/100
  329. 3150  AC(MAX.)=(CINT(AC(MAX.)*100))/100
  330. 3160  CC(MAX.)=(CINT(CC(MAX.)*100))/100
  331. 3170  JU(MAX.)=(CINT(JU(MAX.)*100))/100
  332. 3180  MU(MAX.)=(CINT(MU(MAX.)*100))/100
  333. 3190  PS(MIN.)=(CINT(PS(MIN.)*10000))/10000
  334. 3200  AS(MIN.)=(CINT(AS(MIN.)*100))/100
  335. 3210  RETURN
  336. 3300  '-------------------------------------------- SUBROUTINE : Invalid Entries
  337. 3310  PRINT :LOCATE ,7 :COLOR ,4 : BEEP
  338. 3320  PRINT "  ***  YOU WERE GIVEN TWO CHANCES TO ENTER BUT YOU FAILED   ***  "
  339. 3330  PRINT :COLOR ,4 :LOCATE ,7
  340. 3340  PRINT "  ***  ENTER  Y  TO REDO THIS RIB OR TO GO FOR OTHER RIBS   ***  "
  341. 3350  COLOR ,1 :PRINT
  342. 3360  GOTO 2700
  343. 3400   '---------------------------------------------- SUBROUTINE : Display Data
  344. 3405  CLS :LOCATE 2,3 :COLOR 15,5
  345. 3410  PRINT "  ****             MULTI SPAN RIB DESIGN   -  RIB : R"NMB "            ****"TAB(79)""
  346. 3415  PRINT
  347. 3420  LOCATE ,3 :PRINT "  MATERIAL PROPERTIES :    Conc. f'c ="FC"kg/cm2  *  Steel fy ="FY"kg/cm2"TAB(79)""
  348. 3425  LOCATE ,3 :PRINT "  SECTION DIMENSIONS  :    Width   b = "BR" cm     *  Thickness  h ="HR" cm"TAB(79)""
  349. 3430  COLOR 15,1 :PRINT
  350. 3435  RETURN
  351. 3440   '---------------------------------------------- SUBROUTINE : Display Data
  352. 3445  CLS :LOCATE 2,3 :COLOR 15,5
  353. 3450  PRINT "  ****             MULTI SPAN RIB DESIGN   -  RIB : R"NMB "            ****"TAB(79)""
  354. 3455  COLOR 15,1 :PRINT
  355. 3460  PRINT "   FOR  EXACT NEGATIVE MOMENTS " :PRINT
  356. 3465  RETURN
  357. 3470   '---------------------------------------------- SUBROUTINE : Display Data
  358. 3475  CLS :LOCATE 2,3 :COLOR 15,5
  359. 3480  PRINT "  ****             MULTI SPAN RIB DESIGN   -  RIB : R"NMB "            ****"TAB(79)""
  360. 3485  COLOR 15,1 :PRINT
  361. 3490  PRINT "   FOR  NEGATIVE MOMENTS REDUCED BY  "RDC"%" :PRINT
  362. 3495  RETURN
  363. 3500  '----------- SUBROUTINE to find Negative Moments using Moment Distribution
  364. 3510              ' Distribution Factors
  365. 3520  DFL(1)=1  :DFR(N)=1                    'Far End Supports are Hinges
  366. 3530  FOR I= 1 TO N-1
  367. 3540  DFR(I)=(1/L(I))/(1/L(I)+1/L(I+1))      'Distribution Factor Left  of Joint
  368. 3550  DFL(I+1)=1-DFR(I)                      'Distribution Factor Right of Joint
  369. 3560  NEXT
  370. 3570              ' Fixed End Moments
  371. 3580  MFR(0)=MLC
  372. 3590  FOR I=1 TO N
  373. 3600  MFL(I)=W(I)*L(I)^2/12
  374. 3610  MFR(I)=-W(I)*L(I)^2/12
  375. 3620  NEXT
  376. 3630  MFL(N+1)=MRC
  377. 3640  FOR I= 1 TO N
  378. 3650  MBL(I,1)=-(MFR(I-1)+MFL(I))*DFL(I)
  379. 3660  MBR(I,1)=-(MFR(I)+MFL(I+1))*DFR(I)
  380. 3670  NEXT I
  381. 3680  FOR C=2 TO 6   'moment distribution will be repeated in 6 circles
  382. 3690  FOR I= 1 TO N
  383. 3700  MCL(I,C)=MBR(I,C-1)/2
  384. 3710  MCR(I,C)=MBL(I,C-1)/2
  385. 3720  NEXT I
  386. 3730  FOR I= 1 TO N
  387. 3740  MBL(I,C)=-(MCR(I-1,C)+MCL(I,C))*DFL(I)
  388. 3750  MBR(I,C)=-(MCR(I,C)+MCL(I+1,C))*DFR(I)
  389. 3760  NEXT I
  390. 3770  NEXT C
  391. 3780  FOR I= 1 TO N
  392. 3790  MNL(I)=MFL(I)
  393. 3800  FOR C= 1 TO 6
  394. 3810  MNL(I)=MNL(I)+MCL(I,C)+MBL(I,C)
  395. 3820  NEXT C
  396. 3830  NEXT I
  397. 3840  FOR I= 1 TO N
  398. 3850  MNR(I)=MFR(I)
  399. 3860  FOR C= 1 TO 6
  400. 3870  MNR(I)=MNR(I)+MCR(I,C)+MBR(I,C)
  401. 3880  NEXT C
  402. 3890  NEXT I
  403. 3895  RETURN
  404. 3900  '---- SUBROUTINE to Calculate Reactions, Positive Mom., and Cut off Points
  405. 3905  FOR I= 1 TO N
  406. 3910  RL(I)=W(I)*L(I)/2+(MNL(I)+MNR(I))/L(I)
  407. 3915  RR(I)=W(I)*L(I)/2-(MNL(I)+MNR(I))/L(I)
  408. 3920  IF (RL(I)<=0) OR (RR(I)<=0) GOTO 3950
  409. 3925  XL(I)=RL(I)/W(I)
  410. 3930  MP(I)=RL(I)*XL(I)-W(I)*XL(I)^2/2-MNL(I)
  411. 3935  IF MP(I)<=0 GOTO 3950
  412. 3940  XCL(I)=XL(I)-(SQR(8*MP(I)/W(I)))/2
  413. 3945  XCR(I)=L(I)-XCL(I)-SQR(8*MP(I)/W(I))
  414. 3950  NEXT
  415. 3960  RETURN
  416. 4000  '----------------------- SUBROUTINE : Round up Structural Analysis Results
  417. 4010  FOR I= 1 TO N+1
  418. 4020  MLC=(CINT(MLC*100))/100
  419. 4030  RLC=(CINT(RLC*100))/100
  420. 4040  MRC=(CINT(MRC*100))/100
  421. 4050  RRC=(CINT(RRC*100))/100
  422. 4060  MNL(I)=(CINT(MNL(I)*100))/100
  423. 4070  MNR(I)=(CINT(MNR(I)*100))/100
  424. 4080  RL(I)=(CINT(RL(I)*100))/100
  425. 4090  RR(I)=(CINT(RR(I)*100))/100
  426. 4100  XL(I)=(CINT(XL(I)*100))/100
  427. 4110  MP(I)=(CINT(MP(I)*100))/100
  428. 4120  XCL(I)=(CINT(XCL(I)*100))/100
  429. 4130  XCR(I)=(CINT(XCR(I)*100))/100
  430. 4140  NEXT
  431. 4150  RETURN
  432. 4200  '----------------------- SUBROUTINE : Round up Reinf'. Calculation Results
  433. 4210  FOR I= 1 TO N+1
  434. 4220  CBS(I)=(CINT(CBS(I)*100))/100
  435. 4230  AC(I)=(CINT(AC(I)*100))/100
  436. 4240  ASN(I)=(CINT(ASN(I)*100))/100
  437. 4250  ASP(I)=(CINT(ASP(I)*100))/100
  438. 4260  ASPN(I)=(CINT(ASPN(I)*100))/100
  439. 4270  ASPP(I)=(CINT(ASPP(I)*100))/100
  440. 4280  NEXT
  441. 4290  RETURN
  442. 4300  '----------------------------- SUBROUTINE : Requierd  AREA OF STEEL Reinf'
  443. 4310  WC=(1-SQR(1-2.36*MU*100000/(B*D^2*0.9*FC)))/1.18
  444. 4320  AC=(WC/0.85)*D       'depth of compression Whitny Block
  445. 4330  CC=AC/0.85           'depth of nutral axis
  446. 4340  PS=WC*FC/FY              'steel ratio
  447. 4350  AS=PS*B*D                'area of steel reinf'
  448. 4360  RETURN
  449. 4400  '--------------------------SUBROUTINE to stop execution for huge moments
  450. 4410  LOCATE ,5 :COLOR ,4 :BEEP
  451. 4420  PRINT "   ***   THIS RIB SECTION IS NOT ADEQUATE FOR THE GIVEN SPAN & LOADING    ***      ***                    CHANGE RIB SECTION DIMENTIONS                   ***   "
  452. 4430  COLOR ,1 :PRINT
  453. 4440  RETURN
  454. 5000  '------- SUBROUTINE : Display  Structural Analysis Results  * ONE SPAN RIB
  455. 5010  LT=LL+L(1)+LR
  456. 5020  XXL=CINT(LL/LT*38)
  457. 5030  XX1=CINT(L(1)/LT*38)
  458. 5040  XXR=CINT(LR/LT*38)
  459. 5050  XXT=XXL+XX1+XXR+2
  460. 5060  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  461. 5070  ZA=36+CINT(XXL/2)-3
  462. 5080  ZB=36+XXL
  463. 5090  ZC=ZB+CINT(XX1/2)-2
  464. 5100  ZD=ZB+XX1+1
  465. 5110  ZE=ZD+CINT(XXR/2)-2
  466. 5120  COLOR 0,7
  467. 5130  PRINT "   JOINT NUMBER  ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) ""
  468. 5140  PRINT "   " TAB(36) AC$ TAB(80) ""
  469. 5150  PRINT "   SPAN  NUMBER  ................";
  470. 5160  IF LL<=0 GOTO 5180
  471. 5170  PRINT TAB(ZA)"L/C";
  472. 5180  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$;
  473. 5190  IF LR<=0 GOTO 5210
  474. 5200  PRINT TAB(ZE) "R/C";
  475. 5210  PRINT TAB(80)""
  476. 5220  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  477. 5230  PRINT "   SPAN  LENGTH     (m)..........";
  478. 5240  IF LL<=0 GOTO 5260
  479. 5250  PRINT TAB(ZA) LL;
  480. 5260  PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZD) AB$;
  481. 5270  IF LR<=0 GOTO 5290
  482. 5280  PRINT TAB(ZE) LR;
  483. 5290  PRINT TAB(80)""
  484. 5300  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  485. 5310  PRINT "   SPAN  LOAD       (t/m)........";
  486. 5320  IF WL<=0 GOTO 5340
  487. 5330  PRINT TAB(ZA) WL;
  488. 5340  PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZD) AB$;
  489. 5350  IF WR<=0 GOTO 5370
  490. 5360  PRINT TAB(ZE) WR;
  491. 5370  PRINT TAB(80)""
  492. 5380  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  493. 5390  PRINT "   NEGATIVE MOMENT (t.m)........"TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) TAB(80)""
  494. 5400  PRINT "   " TAB(36) AA$ TAB(80) ""
  495. 5410  PRINT "   SUPP. REACTIONS (t)..........";
  496. 5420  IF LL<=0 GOTO 5440
  497. 5430  PRINT TAB(ZB-6) RLC;
  498. 5440  PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZD-6) RR(1) TAB(ZD) AB$;
  499. 5450  IF LR<=0 GOTO 5470
  500. 5460  PRINT TAB(ZD+1) RRC;
  501. 5470  PRINT TAB(80)""
  502. 5480  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  503. 5490  PRINT "   Lft Dstc. of M+max(m)........"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZD) AB$ TAB(80)""
  504. 5500  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  505. 5510  PRINT "   POSITIVE MOMENT (t.m)........"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZD) AB$ TAB(80)""
  506. 5520  PRINT :COLOR 15,1
  507. 5530  RETURN
  508. 5600  '------- SUBROUTINE : Display  Reinf'. Calculation Results  * ONE SPAN RIB
  509. 5605  COLOR 0,7
  510. 5610  PRINT "   JOINT NUMBER  ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) ""
  511. 5615  PRINT "   " TAB(36) AC$ TAB(80) ""
  512. 5620  PRINT "   SPAN  NUMBER  ................";
  513. 5625  IF LL<=0 GOTO 5635
  514. 5630  PRINT TAB(ZA)"L/C";
  515. 5635  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$;
  516. 5640  IF LR<=0 GOTO 5650
  517. 5645  PRINT TAB(ZE) "R/C";
  518. 5650  PRINT TAB(80)""
  519. 5655  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  520. 5660  PRINT "   NEGATIVE MOMENT (t.m)........"TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) TAB(80)""
  521. 5670  PRINT "   " TAB(36) AA$ TAB(80) ""
  522. 5680  PRINT "   POSITIVE MOMENT (t.m)........"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZD) AB$ TAB(80)""
  523. 5690  PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
  524. 5700  PRINT "   CUT OFF POINTS  (m).........." TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZD-6) XCR(1) TAB(ZD) AB$ TAB(80)""
  525. 5710  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  526. 5720  PRINT "   As (req) TOP    (cm2)........"TAB(ZB-2) ASN(1) TAB(ZD-2) ASN(2) TAB(80)""
  527. 5730  PRINT "   " TAB(36) AA$ TAB(80)""
  528. 5740  PRINT "   As (req) BOTTOM (cm2)........"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZD) AB$ TAB(80)""
  529. 5750  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  530. 5760  PRINT "   REINF' -    TOP ............."TAB(ZB-2) "2"CHR$(237);DIAN(1)"mm" TAB(ZD-5) "2"CHR$(237);DIAN(2)"mm" TAB(80)""
  531. 5770  PRINT "   " TAB(36) AA$ TAB(80) ""
  532. 5780  PRINT "   REINF' - BOTTOM ............."TAB(ZB) AB$ TAB(ZC) "2"CHR$(237);DIAP(1)"mm" TAB(ZD) AB$ TAB(80)""
  533. 5790  COLOR 15,1 :PRINT
  534. 5800  RETURN
  535. 6000  '------- SUBROUTINE : Display  Structural Analysis Results * TWO SPANS RIB
  536. 6010  LT=LL+L(1)+L(2)+LR
  537. 6020  XXL=CINT(LL/LT*50)
  538. 6030  XX1=CINT(L(1)/LT*50)
  539. 6040  XX2=CINT(L(2)/LT*50)
  540. 6050  XXR=CINT(LR/LT*50)
  541. 6060  XXT=XXL+XX1+XX2+XXR+3
  542. 6070  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  543. 6080  ZA=23+CINT(XXL/2)-3
  544. 6090  ZB=23+XXL
  545. 6100  ZC=ZB+CINT(XX1/2)-2
  546. 6110  ZF=ZB+XX1+1
  547. 6120  ZG=ZF+CINT(XX2/2)-2
  548. 6130  ZD=ZF+XX2+1
  549. 6140  ZE=ZD+CINT(XXR/2)-2
  550. 6150  COLOR 0,7
  551. 6160  PRINT " JOINT NUMBER  ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) ""
  552. 6170  PRINT "" TAB(23) AC$ TAB(80) ""
  553. 6180  PRINT " SPAN  NUMBER  .....";
  554. 6190  IF LL<=0 GOTO 6210
  555. 6200  PRINT TAB(ZA)"L/C";
  556. 6210  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$;
  557. 6220  IF LR<=0 GOTO 6240
  558. 6230  PRINT TAB(ZE) "R/C";
  559. 6240  PRINT TAB(80)""
  560. 6250  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  561. 6260  PRINT " SPAN  LENGTH   (m) ";
  562. 6270  IF LL<=0 GOTO 6290
  563. 6280  PRINT TAB(ZA) LL;
  564. 6290  PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZF)AB$ TAB(ZG) L(2) TAB(ZD) AB$;
  565. 6300  IF LR<=0 GOTO 6320
  566. 6310  PRINT TAB(ZE) LR;
  567. 6320  PRINT TAB(80)""
  568. 6330  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  569. 6340  PRINT " SPAN  LOAD   (t/m)";
  570. 6350  IF WL<=0 GOTO 6370
  571. 6360  PRINT TAB(ZA) WL;
  572. 6370  PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZF)AB$ TAB(ZG) W(2) TAB(ZD) AB$;
  573. 6380  IF WR<=0 GOTO 6400
  574. 6390  PRINT TAB(ZE) WR;
  575. 6400  PRINT TAB(80)""
  576. 6410  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  577. 6420  PRINT " NEGT. MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) TAB(80)""
  578. 6430  PRINT "" TAB(23) AA$ TAB(80) ""
  579. 6440  PRINT " SUPP.REACTIONS (t)";
  580. 6450  IF LL<=0 GOTO 6470
  581. 6460  PRINT TAB(ZB-6) RLC;
  582. 6470  PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF)AB$ TAB(ZF+1) RL(2) TAB(ZD-6) RR(2) TAB(ZD) AB$;
  583. 6480  IF LR<=0 GOTO 6500
  584. 6490  PRINT TAB(ZD+1) RRC;
  585. 6500  PRINT TAB(80)""
  586. 6510  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  587. 6520  PRINT " Lft Dst.of M+mx(m)"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZF) AB$ TAB(ZG) XL(2) TAB(ZD) AB$ TAB(80)""
  588. 6530  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  589. 6540  PRINT " POST. MOMENT (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZG) MP(2) TAB(ZD) AB$ TAB(80)""
  590. 6550  PRINT :COLOR 15,1
  591. 6560  RETURN
  592. 6600  '------- SUBROUTINE : Display  Reinf'. Calculation Results * TWO SPANS RIB
  593. 6605  COLOR 0,7
  594. 6610  PRINT " JOINT NUMBER  ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) ""
  595. 6615  PRINT "" TAB(23) AC$ TAB(80) ""
  596. 6620  PRINT " SPAN  NUMBER  .....";
  597. 6625  IF LL<=0 GOTO 6640
  598. 6630  PRINT TAB(ZA)"L/C";
  599. 6640  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$;
  600. 6650  IF LR<=0 GOTO 6670
  601. 6660  PRINT TAB(ZE) "R/C";
  602. 6670  PRINT TAB(80)""
  603. 6680  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  604. 6690  PRINT " NEGT. MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) TAB(80)""
  605. 6700  PRINT "" TAB(23) AA$ TAB(80) ""
  606. 6710  PRINT " POST. MOMENT (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZG) MP(2) TAB(ZD) AB$ TAB(80)""
  607. 6720  PRINT TAB(ZB) AB$ TAB(ZF) AB$  TAB(ZD) AB$ TAB(80)""
  608. 6730  PRINT " CUT OFF POINTS (m)" TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF)AB$ TAB(ZF+1) XCL(2) TAB(ZD-6) XCR(2) TAB(ZD) AB$ TAB(80)""
  609. 6740  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  610. 6750  PRINT " As (req) TOP (cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZD-2) ASN(3) TAB(80)""
  611. 6760  PRINT "" TAB(23) AA$ TAB(80)""
  612. 6770  PRINT " As (req)BOTT (cm2)"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZF) AB$ TAB(ZG) ASP(2) TAB(ZD) AB$ TAB(80)""
  613. 6780  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  614. 6790  PRINT " REINF' -    TOP   "TAB(ZB-2) "2"CHR$(237);DIAN(1)"mm" TAB(ZF-2) "2"CHR$(237);DIAN(2)"mm" TAB(ZD-5) "2"CHR$(237);DIAN(3)"mm" TAB(80)""
  615. 6800  PRINT "" TAB(23) AA$ TAB(80) ""
  616. 6810  PRINT " REINF' - BOTTOM   "TAB(ZB) AB$ TAB(ZC) "2"CHR$(237);DIAP(1)"mm" TAB(ZF) AB$ TAB(ZG) "2"CHR$(237);DIAP(2)"mm" TAB(ZD) AB$ TAB(80)""
  617. 6820  COLOR 15,1 :PRINT
  618. 6830  RETURN
  619. 7000  '----- SUBROUTINE : Display  Structural Analysis Results * THREE SPANS RIB
  620. 7010  LT=LL+L(1)+L(2)+L(3)+LR
  621. 7020  XXL=CINT(LL/LT*60)
  622. 7030  XX1=CINT(L(1)/LT*60)
  623. 7040  XX2=CINT(L(2)/LT*60)
  624. 7050  XX3=CINT(L(3)/LT*60)
  625. 7060  XXR=CINT(LR/LT*60)
  626. 7070  XXT=XXL+XX1+XX2+XX3+XXR+4
  627. 7080  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  628. 7090  ZA=12+CINT(XXL/2)-3
  629. 7100  ZB=12+XXL
  630. 7110  ZC=ZB+CINT(XX1/2)-2
  631. 7120  ZF=ZB+XX1+1
  632. 7130  ZH=ZF+CINT(XX2/2)-2
  633. 7140  ZI=ZF+XX2+1
  634. 7150  ZG=ZI+CINT(XX3/2)-2
  635. 7160  ZD=ZI+XX3+1
  636. 7170  ZE=ZD+CINT(XXR/2)-2
  637. 7180  COLOR 0,7
  638. 7190  PRINT " JOINT No"TAB(ZB)"1" TAB(ZF)"2" TAB(ZI)"3" TAB(ZD)"4" TAB(80) ""
  639. 7200  PRINT "" TAB(12) AC$ TAB(80) ""
  640. 7210  PRINT " SPAN No.";
  641. 7220  IF LL<=0 GOTO 7240
  642. 7230  PRINT TAB(ZA)"L/C";
  643. 7240  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZH) "SPAN 2" TAB(ZI) AB$ TAB(ZG) "SPAN 3" TAB(ZD)AB$;
  644. 7250  IF LR<=0 GOTO 7270
  645. 7260  PRINT TAB(ZE) "R/C";
  646. 7270  PRINT TAB(80)""
  647. 7280  PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)""
  648. 7290  PRINT " L    (m)";
  649. 7300  IF LL<=0 GOTO 7320
  650. 7310  PRINT TAB(ZA) LL;
  651. 7320  PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZF)AB$ TAB(ZH) L(2) TAB(ZI) AB$ TAB(ZG) L(3) TAB(ZD) AB$;
  652. 7330  IF LR<=0 GOTO 7350
  653. 7340  PRINT TAB(ZE) LR;
  654. 7350  PRINT TAB(80)""
  655. 7360  PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)""
  656. 7370  PRINT " W  (t/m)";
  657. 7380  IF WL<=0 GOTO 7400
  658. 7390  PRINT TAB(ZA) WL;
  659. 7400  PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZF)AB$ TAB(ZH) W(2) TAB(ZI) AB$ TAB(ZG) W(3) TAB(ZD) AB$;
  660. 7410  IF WR<=0 GOTO 7430
  661. 7420  PRINT TAB(ZE) WR;
  662. 7430  PRINT TAB(80)""
  663. 7440  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  664. 7450  PRINT " M- (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZI-2) MNR(2) TAB(ZD-2) MNR(3) TAB(80)""
  665. 7460  PRINT "" TAB(12) AA$ TAB(80) ""
  666. 7470  PRINT " R    (t)";
  667. 7480  IF LL<=0 GOTO 7500
  668. 7490  PRINT TAB(ZB-6) RLC;
  669. 7500  PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF)AB$ TAB(ZF+1) RL(2) TAB(ZI-6) RR(2) TAB(ZI) AB$ TAB(ZI+1) RL(3) TAB(ZD-6) RR(3) TAB(ZD) AB$;
  670. 7510  IF LR<=0 GOTO 7530
  671. 7520  PRINT TAB(ZD+1) RRC;
  672. 7530  PRINT TAB(80)""
  673. 7540  PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)""
  674. 7550  PRINT " X M+x(m)"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZF) AB$ TAB(ZH) XL(2) TAB(ZI) AB$ TAB(ZG) XL(3) TAB(ZD) AB$ TAB(80)""
  675. 7560  PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)""
  676. 7570  PRINT " Mu+ (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZH) MP(2) TAB(ZI) AB$ TAB(ZG) MP(3) TAB(ZD) AB$ TAB(80)""
  677. 7580  PRINT :COLOR 15,1
  678. 7590  RETURN
  679. 7600  '----- SUBROUTINE : Display  Reinf'. Calculation Results * THREE SPANS RIB
  680. 7610  COLOR 0,7
  681. 7620  PRINT " JOINT No"TAB(ZB)"1" TAB(ZF)"2" TAB(ZI)"3" TAB(ZD)"4" TAB(80) ""
  682. 7630  PRINT "" TAB(12) AC$ TAB(80) ""
  683. 7640  PRINT " SPAN No.";
  684. 7650  IF LL<=0 GOTO 7670
  685. 7660  PRINT TAB(ZA)"L/C";
  686. 7670  PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZH) "SPAN 2" TAB(ZI) AB$ TAB(ZG) "SPAN 3" TAB(ZD)AB$;
  687. 7680  IF LR<=0 GOTO 7700
  688. 7690  PRINT TAB(ZE) "R/C";
  689. 7700  PRINT TAB(80)""
  690. 7710  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  691. 7720  PRINT " M- (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZI-2) MNR(2) TAB(ZD-2) MNR(3) TAB(80)""
  692. 7730  PRINT "" TAB(12) AA$ TAB(80) ""
  693. 7740  PRINT " Mu+ (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZH) MP(2) TAB(ZI) AB$ TAB(ZG) MP(3) TAB(ZD) AB$ TAB(80)""
  694. 7750  PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)""
  695. 7760  PRINT " CUT PT(m)" TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF)AB$ TAB(ZF+1) XCL(2) TAB(ZI-6) XCR(2) TAB(ZI) AB$ TAB(ZI+1) XCL(3) TAB(ZD-6) XCR(3) TAB(ZD) AB$ TAB(80)""
  696. 7770  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  697. 7780  PRINT " As-(cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZI-2) ASN(3) TAB(ZD-2) ASN(4) TAB(80)""
  698. 7790  PRINT "" TAB(12) AA$ TAB(80)""
  699. 7800  PRINT " As+(cm2)"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZF) AB$ TAB(ZH) ASP(2) TAB(ZI) AB$ TAB(ZG) ASP(3) TAB(ZD) AB$ TAB(80)""
  700. 7810  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  701. 7820  PRINT " RNF' TP "TAB(ZB-1) "2"CHR$(237);DIAN(1)"mm" TAB(ZF-3) "2"CHR$(237);DIAN(2)"mm" TAB(ZI-3) "2"CHR$(237);DIAN(3) "mm" TAB(ZD-5) "2"CHR$(237);DIAN(4)"mm" TAB(80)""
  702. 7830  PRINT "" TAB(12) AA$ TAB(80) ""
  703. 7840  PRINT " RNF' BT "TAB(ZB) AB$ TAB(ZC) "2"CHR$(237);DIAP(1)"mm" TAB(ZF) AB$ TAB(ZH) "2"CHR$(237);DIAP(2)"mm" TAB(ZI) AB$ TAB(ZG) "2"CHR$(237);DIAP(3)"mm" TAB(ZD) AB$ TAB(80)""
  704. 7850  COLOR 15,1 :PRINT
  705. 7860  RETURN
  706. 8000  '----- SUBROUTINE : Display  Structural Analysis Results * 4 - 8 SPANS RIB
  707. 8010  IF N= 4 THEN XX1= 14 :XX= 57
  708. 8020  IF N= 5 THEN XX1= 11 :XX= 56
  709. 8030  IF N= 6 THEN XX1= 9 :XX= 55
  710. 8040  IF N= 7 THEN XX1= 8 :XX= 57
  711. 8050  IF LL<=0 AND LR<=0 THEN XXT=XX :ZA= 15
  712. 8060  IF LL<=0 AND LR>0 THEN XXT=XX+7 :ZA= 15
  713. 8070  IF LL>0 AND LR<=0 THEN XXT=XX+7 :ZA= 8
  714. 8080  IF LL>0 AND LR>0 THEN XXT=XX+14 :ZA= 8
  715. 8090  AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
  716. 8100  COLOR 0,7
  717. 8110  PRINT " JOINT ";
  718. 8120  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) ""
  719. 8130  PRINT "" TAB(ZA) AC$ TAB(80) ""
  720. 8140  PRINT " SPAN No";
  721. 8150  IF LL<=0 GOTO 8170
  722. 8160  PRINT TAB(11)"L/C";
  723. 8170  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$;
  724. 8180  IF LR<=0 GOTO 8200
  725. 8190  PRINT TAB(16+XX-1) "R/C";
  726. 8200  PRINT TAB(80)""
  727. 8210  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  728. 8220  PRINT " L  (m)";
  729. 8230  IF LL<=0 GOTO 8250
  730. 8240  PRINT TAB(8) LL;
  731. 8250  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) L(I); :NEXT :PRINT TAB(16+XX-2) AB$;
  732. 8260  IF LR<=0 GOTO 8280
  733. 8270  PRINT TAB(16+XX-1) LR;
  734. 8280  PRINT TAB(80)""
  735. 8290  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  736. 8300  PRINT " W t/m ";
  737. 8310  IF WL<=0 GOTO 8330
  738. 8320  PRINT TAB(8) WL;
  739. 8330  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) W(I); :NEXT :PRINT TAB(16+XX-2) AB$;
  740. 8340  IF WR<=0 GOTO 8360
  741. 8350  PRINT TAB(16+XX-1) WR;
  742. 8360  PRINT TAB(80)""
  743. 8370  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  744. 8380  PRINT " M- t.m" TAB(12) -MNL(1);
  745. 8390  FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNR(I); :NEXT :PRINT TAB(80) ""
  746. 8400  PRINT "" TAB(ZA) AA$ TAB(80) ""
  747. 8410  PRINT " R.Lft ";
  748. 8420  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+(I-1)*XX1) RL(I); :NEXT  :PRINT TAB(16+XX-2) AB$;
  749. 8430  IF LR<=0 GOTO 8450
  750. 8440  PRINT TAB(16+XX-1) RRC;
  751. 8450  PRINT TAB(80)""
  752. 8460  PRINT " R.Rgt ";
  753. 8470  IF LL<=0 GOTO 8490
  754. 8480  PRINT TAB(8) RLC;
  755. 8490  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-8) RR(I); :NEXT  :PRINT TAB(16+XX-2) AB$;
  756. 8500  PRINT TAB(80)""
  757. 8510  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  758. 8520  PRINT " XL- m ";
  759. 8530  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) XL(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  760. 8540  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  761. 8550  PRINT " M+ t.m";
  762. 8560  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  763. 8570  PRINT :COLOR 15,1
  764. 8580  RETURN
  765. 8600  '----- SUBROUTINE : Display  Reinf'. Calculation Results * 4 - 8 SPANS RIB
  766. 8605  COLOR 0,7
  767. 8610  PRINT " JOINT ";
  768. 8620  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) ""
  769. 8630  PRINT "" TAB(ZA) AC$ TAB(80) ""
  770. 8640  PRINT " SPAN No";
  771. 8650  IF LL<=0 GOTO 8670
  772. 8660  PRINT TAB(11)"L/C";
  773. 8670  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$;
  774. 8680  IF LR<=0 GOTO 8700
  775. 8690  PRINT TAB(16+XX-1) "R/C";
  776. 8700  PRINT TAB(80)""
  777. 8710  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  778. 8720  PRINT " M- t.m" TAB(12) -MNL(1);
  779. 8730  FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNR(I); :NEXT :PRINT TAB(80) ""
  780. 8740  PRINT "" TAB(ZA) AA$ TAB(80) ""
  781. 8750  PRINT " M+ t.m";
  782. 8760  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  783. 8770  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
  784. 8780  PRINT " CUT Pt.Lft";
  785. 8790  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+(I-1)*XX1) XCL(I); :NEXT  :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  786. 8800  PRINT " CUT Pt.Rgt";
  787. 8810  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-8) XCR(I); :NEXT  :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  788. 8820  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  789. 8830  PRINT " As- cm2";
  790. 8840  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) ASN(I); :NEXT :PRINT TAB(80) ""
  791. 8850  PRINT "" TAB(ZA) AA$ TAB(80)""
  792. 8860  PRINT " As+ cm2";
  793. 8870  FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) ASP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) ""
  794. 8880  COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7
  795. 8890  PRINT " RNF' TP";
  796. 8900  FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-3) "2" CHR$(237) DIAN(I); :NEXT :PRINT TAB(80) ""
  797. 8910  PRINT "" TAB(ZA) AA$ TAB(80) ""
  798. 8920  PRINT " RNF' BT ";
  799. 8930  FOR I= 1 TO N :PRINT  TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-3) "2" CHR$(237) DIAP(I); :NEXT :PRINT  TAB(16+XX-2) AB$ TAB(80) ""
  800. 8940  COLOR 15,1 :PRINT
  801. 8950  RETURN
  802. 9000  '---------------------- SUBROUTINE : Print  Data & Results  * ONE SPAN RIB
  803. 9010  AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124)
  804. 9020  AX$=CHR$(43) :AN$=STRING$(5,45)
  805. 9030  IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84)
  806. 9040  LPRINT TAB(4)"SPAN  LOAD     ..(t/m)......";
  807. 9050  IF WL<=0 GOTO 9070
  808. 9060  LPRINT TAB(ZA) WL;
  809. 9070  LPRINT TAB(ZC) W(1);
  810. 9080  IF WR<=0 GOTO 9100
  811. 9090  LPRINT TAB(ZE) WR
  812. 9100  LPRINT
  813. 9110  LPRINT TAB(36) AF$;
  814. 9120  LPRINT CHR$(27);"3";CHR$(12);TAB(36) AD$
  815. 9125  LPRINT
  816. 9130  LPRINT TAB(ZB) AG$ TAB(ZD) AG$
  817. 9140  LPRINT CHR$(27);"2"
  818. 9150  LPRINT TAB(4)"SPAN  LENGTH     ..(m)......";
  819. 9160  IF LL<=0 GOTO 9180
  820. 9170  LPRINT TAB(36) AX$ TAB(ZA) LL;
  821. 9180  LPRINT TAB(ZB)AX$;AN$ TAB(ZC) L(1) TAB(ZD-5) AN$;AX$;
  822. 9190  IF LR<=0 GOTO 9210
  823. 9200  LPRINT TAB(ZE) LR TAB(36+XXT-1) AX$
  824. 9210  LPRINT :LPRINT :LPRINT
  825. 9220  LPRINT TAB(4)"NEGATIVE MOMENT ..(t.m)....."TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1)
  826. 9230  LPRINT TAB(36) AD$
  827. 9240  LPRINT TAB(ZB) AG$ TAB(ZD) AG$
  828. 9250  LPRINT TAB(4)"SUPP. REACTIONS  ..(t)......";
  829. 9260  IF LL<=0 GOTO 9280
  830. 9270  LPRINT TAB(ZB-6) RLC;
  831. 9280  LPRINT TAB(ZB) AE$ TAB(ZB+1) RL(1) TAB(ZD-6) RR(1) TAB(ZD) AE$;
  832. 9290  IF LR<=0 GOTO 9310
  833. 9300  LPRINT TAB(ZD+1) RRC
  834. 9310  LPRINT TAB(ZB) AE$ TAB(ZD) AE$
  835. 9320  LPRINT TAB(4)"Lft Dstc. of M+max..(m)....."TAB(ZB) AE$ TAB(ZC) XL(1) TAB(ZD) AE$
  836. 9330  LPRINT TAB(ZB) AE$ TAB(ZD) AE$
  837. 9340  LPRINT TAB(4)"POSITIVE MOMENT ..(t.m)....."TAB(ZB) AE$ TAB(ZC) MP(1) TAB(ZD) AE$
  838. 9350  LPRINT TAB(ZB) AE$ TAB(ZD) AE$
  839. 9360  LPRINT TAB(4)"CUT OFF POINTS  ..(m)......." TAB(ZB) AE$ TAB(ZB+1) XCL(1) TAB(ZD-6) XCR(1) TAB(ZD) AE$
  840. 9370  LPRINT :LPRINT :LPRINT
  841. 9380  LPRINT TAB(4)"As (req) TOP    ..(cm2)....."TAB(ZB-2) ASN(1) TAB(ZD-2) ASN(2)
  842. 9390  LPRINT TAB(36) AD$
  843. 9400  LPRINT TAB(4)"As (req) BOTTOM ..(cm2)....."TAB(ZB) AG$ TAB(ZC) ASP(1) TAB(ZD) AG$
  844. 9410  LPRINT :LPRINT
  845. 9420  LPRINT TAB(4)"REINF' -    TOP ............"TAB(ZB-2) "2"BRDA$;DIAN(1)"mm" TAB(ZD-5) "2"BRDA$;DIAN(2)"mm"
  846. 9430  LPRINT TAB(36) AD$
  847. 9440  LPRINT TAB(4)"REINF' - BOTTOM ............"TAB(ZB) AG$ TAB(ZC) "2"BRDA$;DIAP(1)"mm" TAB(ZD) AG$
  848. 9460  RETURN
  849. 10000  '-------------------- SUBROUTINE : Print  Data & Results  * TWO SPANS RIB
  850. 10010  AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124)
  851. 10020  AX$=CHR$(43) :AN$=STRING$(3,45)
  852. 10030  IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84)
  853. 10040  LPRINT TAB(2)"SPAN  LOAD  (t/m)";
  854. 10050  IF WL<=0 GOTO 10070
  855. 10060  LPRINT TAB(ZA) WL;
  856. 10070  LPRINT TAB(ZC) W(1) TAB(ZG) W(2);
  857. 10080  IF WR<=0 GOTO 10100
  858. 10090  LPRINT TAB(ZE) WR
  859. 10100  LPRINT
  860. 10110  LPRINT TAB(23) AF$;
  861. 10120  LPRINT CHR$(27);"3";CHR$(12);TAB(23) AD$
  862. 10125  LPRINT
  863. 10130  LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZD) AG$
  864. 10140  LPRINT CHR$(27);"2"
  865. 10150  LPRINT TAB(2) "SPAN  LENGTH  (m)";
  866. 10160  IF LL<=0 GOTO 10180
  867. 10170  LPRINT TAB(23) AX$ TAB(ZA) LL;
  868. 10180  LPRINT TAB(ZB)AX$;AN$ TAB(ZC) L(1) TAB(ZF-3) AN$;AX$;AN$ TAB(ZG) L(2) TAB(ZD-3) AN$;AX$;
  869. 10190  IF LR<=0 GOTO 10210
  870. 10200  LPRINT TAB(ZE) LR TAB(ZD+XXR) AX$
  871. 10210  LPRINT :LPRINT :LPRINT
  872. 10220  LPRINT TAB(2)"NGTV.MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2)
  873. 10222  IF RDC<=0 THEN LPRINT TAB(4) "(Exact values)"; :GOTO 10230
  874. 10225  LPRINT TAB(4) "(Redc.by"RDC"%)";
  875. 10230  LPRINT TAB(23) AD$
  876. 10240  LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZD) AG$
  877. 10250  LPRINT TAB(2)"SUPP.REACTION (t)";
  878. 10260  IF LL<=0 GOTO 10280
  879. 10270  LPRINT TAB(ZB-6) RLC;
  880. 10280  LPRINT TAB(ZB) AE$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF) AE$ TAB(ZF+1) RL(2) TAB(ZD-6) RR(2) TAB(ZD) AE$;
  881. 10290  IF LR<=0 GOTO 10310
  882. 10300  LPRINT TAB(ZD+1) RRC
  883. 10310  LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZD) AE$
  884. 10320  LPRINT TAB(2)"Lt Dst.of M+mx(m)"TAB(ZB) AE$ TAB(ZC) XL(1) TAB(ZF) AE$ TAB(ZG) XL(2) TAB(ZD) AE$
  885. 10330  LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZD) AE$
  886. 10340  LPRINT TAB(2)"PSTV.MOMENT (t.m)"TAB(ZB) AE$ TAB(ZC) MP(1) TAB(ZF) AE$ TAB(ZG) MP(2) TAB(ZD) AE$
  887. 10350  LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZD) AE$
  888. 10360  LPRINT TAB(2)"CUTOFF POINTS (m)" TAB(ZB) AE$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF) AE$ TAB(ZF+1) XCL(2) TAB(ZD-6) XCR(2) TAB(ZD) AE$
  889. 10370  LPRINT :LPRINT :LPRINT
  890. 10380  LPRINT TAB(2)"As (req)TOP (cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZD-2) ASN(3)
  891. 10390  LPRINT TAB(23) AD$
  892. 10400  LPRINT TAB(2)"As (req)BOT (cm2)"TAB(ZB) AG$ TAB(ZC) ASP(1) TAB(ZF) AG$ TAB(ZG) ASP(2) TAB(ZD) AG$
  893. 10410  LPRINT :LPRINT
  894. 10420  LPRINT TAB(2)"REINF' -    TOP  "TAB(ZB-2) "2"BRDA$;DIAN(1)"mm" TAB(ZF-2) "2"BRDA$;DIAN(2)"mm" TAB(ZD-5) "2"BRDA$;DIAN(3)"mm"
  895. 10430  LPRINT TAB(23) AD$
  896. 10440  LPRINT TAB(2)"REINF' - BOTTOM  "TAB(ZB) AG$ TAB(ZC) "2"BRDA$;DIAP(1)"mm" TAB(ZF) AG$ TAB(ZG) "2"BRDA$;DIAP(2)"mm" TAB(ZD) AG$
  897. 10460  RETURN
  898. 11000  '------------------ SUBROUTINE : Print  Data & Results  * THREE SPANS RIB
  899. 11010  AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124)
  900. 11020  AX$=CHR$(43) :AN$=STRING$(2,45)
  901. 11030  IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84)
  902. 11040  LPRINT TAB(2)"W  (t/m)";
  903. 11050  IF WL<=0 GOTO 11070
  904. 11060  LPRINT TAB(ZA) WL;
  905. 11070  LPRINT TAB(ZC) W(1) TAB(ZH) W(2) TAB(ZG) W(3);
  906. 11080  IF WR<=0 GOTO 11100
  907. 11090  LPRINT TAB(ZE) WR
  908. 11100  LPRINT
  909. 11110  LPRINT TAB(12) AF$;
  910. 11120  LPRINT CHR$(27);"3";CHR$(12);TAB(12) AD$
  911. 11125  LPRINT
  912. 11130  LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZI) AG$ TAB(ZD) AG$
  913. 11140  LPRINT CHR$(27);"2"
  914. 11150  LPRINT TAB(2)"L    (m)";
  915. 11160  IF LL<=0 GOTO 11180
  916. 11170  LPRINT TAB(ZA) LL;
  917. 11180  LPRINT TAB(ZB)AX$;AN$ TAB(ZC) L(1) TAB(ZF-2) AN$;AX$;AN$ TAB(ZH) L(2) TAB(ZI-2) AN$;AX$;AN$ TAB(ZG) L(3) TAB(ZD-2) AN$;AX$;
  918. 11190  IF LR<=0 GOTO 11210
  919. 11200  LPRINT TAB(ZE) LR
  920. 11210  LPRINT :LPRINT :LPRINT
  921. 11212  LPRINT TAB(1)"Mu- (t.m)";
  922. 11214  IF RDC<=0 THEN LPRINT " (Exact values)"; :GOTO 11220
  923. 11216  LPRINT " (Reduced by"RDC"%)";
  924. 11220  LPRINT TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZI-2) MNR(2) TAB(ZD-2) MNR(3)
  925. 11230  LPRINT TAB(12) AD$
  926. 11240  LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZI) AG$ TAB(ZD) AG$
  927. 11250  LPRINT TAB(2)"R    (t)";
  928. 11260  IF LL<=0 GOTO 11280
  929. 11270  LPRINT TAB(ZB-6) RLC;
  930. 11280  LPRINT TAB(ZB) AE$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF) AE$ TAB(ZF+1) RL(2) TAB(ZI-6) RR(2) TAB(ZI) AE$ TAB(ZI+1) RL(3) TAB(ZD-6) RR(3) TAB(ZD) AE$;
  931. 11290  IF LR<=0 GOTO 11310
  932. 11300  LPRINT TAB(ZD+1) RRC
  933. 11310  LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZI) AE$ TAB(ZD) AE$
  934. 11320  LPRINT TAB(2)"X M+x(m)"TAB(ZB) AE$ TAB(ZC) XL(1) TAB(ZF) AE$ TAB(ZH) XL(2) TAB(ZI) AE$ TAB(ZG) XL(3) TAB(ZD) AE$
  935. 11330  LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZI) AE$ TAB(ZD) AE$
  936. 11340  LPRINT TAB(2)"Mu+ (t.m)"TAB(ZB) AE$ TAB(ZC) MP(1) TAB(ZF) AE$ TAB(ZH) MP(2) TAB(ZI) AE$ TAB(ZG) MP(3) TAB(ZD) AE$
  937. 11350  LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZI) AE$ TAB(ZD) AE$
  938. 11360  LPRINT TAB(2)"CUT Pt(m)" TAB(ZB) AE$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF) AE$ TAB(ZF+1) XCL(2) TAB(ZI-6) XCR(2) TAB(ZI) AE$ TAB(ZI+1) XCL(3) TAB(ZD-6) XCR(3) TAB(ZD) AE$
  939. 11370  LPRINT :LPRINT :LPRINT
  940. 11380  LPRINT TAB(2)"As-(cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZI-2) ASN(3) TAB(ZD-2) ASN(4)
  941. 11390  LPRINT TAB(12) AD$
  942. 11400  LPRINT TAB(2)"As+(cm2)"TAB(ZB) AG$ TAB(ZC) ASP(1) TAB(ZF) AG$ TAB(ZH) ASP(2) TAB(ZI) AG$ TAB(ZG) ASP(3) TAB(ZD) AG$
  943. 11410  LPRINT :LPRINT
  944. 11420  LPRINT TAB(2)"RNF' TP "TAB(ZB-2) "2"BRDA$;DIAN(1)"mm" TAB(ZF-2) "2"BRDA$;DIAN(2)"mm" TAB(ZI-2) "2"BRDA$;DIAN(3)"mm" TAB(ZD-5) "2"BRDA$;DIAN(4)"mm"
  945. 11430  LPRINT TAB(12) AD$
  946. 11440  LPRINT TAB(2)"RNF' BT "TAB(ZB) AG$ TAB(ZC) "2"BRDA$;DIAP(1)"mm" TAB(ZF) AG$ TAB(ZH) "2"BRDA$;DIAP(2)"mm" TAB(ZI) AG$ TAB(ZG) "2"BRDA$;DIAP(3)"mm" TAB(ZD) AG$
  947. 11460  RETURN
  948. 12000  '-------------- SUBROUTINE : Print  Data & Results  *  4  -  8  SPANS RIB
  949. 12010  AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124)
  950. 12020  AX$=CHR$(43) :AN$=STRING$(2,45)
  951. 12030  IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84)
  952. 12040  LPRINT TAB(1)"W  (t/m)";
  953. 12050  IF WL<=0 GOTO 12070
  954. 12060  LPRINT TAB(8) WL;
  955. 12070  FOR I= 1 TO N :LPRINT TAB(16+I*XX1-INT(XX1/2)-4) W(I); :NEXT
  956. 12080  IF WR<=0 GOTO 12100
  957. 12090  LPRINT TAB(16+XX-1) WR
  958. 12100  LPRINT
  959. 12110  LPRINT TAB(ZA) AF$;
  960. 12120  LPRINT CHR$(27);"3";CHR$(12);TAB(ZA) AD$
  961. 12125  LPRINT
  962. 12130  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AG$; :NEXT
  963. 12140  LPRINT CHR$(27);"2"
  964. 12150  LPRINT TAB(1)"L   (m)";
  965. 12160  IF LL<=0 GOTO 12180
  966. 12170  LPRINT TAB(8) AX$ TAB(9) LL;
  967. 12180  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AX$ TAB(16+I*XX1-INT(XX1/2)-4) L(I); :NEXT :LPRINT TAB(16+XX-2) AX$;
  968. 12190  IF LR<=0 GOTO 12210
  969. 12200  LPRINT TAB(16+XX-1) LR TAB(ZA+XXT-1) AX$
  970. 12210  LPRINT :LPRINT :LPRINT
  971. 12220  LPRINT TAB(1)"Mu- (t.m)";
  972. 12222  IF RDC<=0 THEN LPRINT " (Exact values)"; :GOTO 12230
  973. 12225  LPRINT " (Reduced by"RDC"%)";
  974. 12230  LPRINT TAB(12) -MNL(1);
  975. 12240  FOR I= 1 TO N :LPRINT TAB(16+I*XX1-4) MNR(I); :NEXT
  976. 12250  LPRINT TAB(ZA) AD$
  977. 12260  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AG$; :NEXT
  978. 12270  LPRINT TAB(1)"R.Lft ";
  979. 12280  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+(I-1)*XX1) RL(I); :NEXT  :LPRINT TAB(16+XX-2) AE$;
  980. 12290  IF LR<=0 GOTO 12310
  981. 12300  LPRINT TAB(16+XX-1) RRC
  982. 12310  LPRINT TAB(1)"R.Rgt ";
  983. 12320  IF LL<=0 GOTO 12340
  984. 12330  LPRINT TAB(8) RLC;
  985. 12340  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-8) RR(I); :NEXT  :LPRINT TAB(16+XX-2) AE$
  986. 12350  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AE$; :NEXT
  987. 12360  LPRINT TAB(1)"XL- m ";
  988. 12370  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-INT(XX1/2)-4) XL(I); :NEXT :LPRINT TAB(16+XX-2) AE$
  989. 12380  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AE$; :NEXT
  990. 12390  LPRINT TAB(1)"M+ t.m";
  991. 12400  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :LPRINT TAB(16+XX-2) AE$
  992. 12410  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AE$; :NEXT
  993. 12420  LPRINT TAB(1)"CUT Pt.Lft";
  994. 12430  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+(I-1)*XX1) XCL(I); :NEXT  :LPRINT TAB(16+XX-2) AE$
  995. 12440  LPRINT TAB(1)"CUT Pt.Rgt";
  996. 12450  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-8) XCR(I); :NEXT  :LPRINT TAB(16+XX-2) AE$
  997. 12460  LPRINT :LPRINT :LPRINT
  998. 12470  LPRINT TAB(1)"As- cm2";
  999. 12480  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-4) ASN(I); :NEXT
  1000. 12490  LPRINT TAB(ZA) AD$
  1001. 12500  LPRINT TAB(1)"As+ cm2";
  1002. 12510  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AG$ TAB(16+I*XX1-INT(XX1/2)-4) ASP(I); :NEXT :LPRINT TAB(16+XX-2) AG$
  1003. 12520  LPRINT :LPRINT
  1004. 12530  LPRINT TAB(1)"RNF' TP";
  1005. 12540  FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-3) "2"BRDA$;DIAN(I); :NEXT
  1006. 12550  LPRINT TAB(ZA) AD$
  1007. 12560  LPRINT TAB(1)"RNF' BT ";
  1008. 12570  FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AG$ TAB(16+I*XX1-INT(XX1/2)-4) "2"BRDA$;DIAP(I); :NEXT :LPRINT TAB(16+XX-2) AG$
  1009. 12580  RETURN
  1010.